From 5b3a04ca9ca6ad0f3a1195df354aad62757ad9c6 Mon Sep 17 00:00:00 2001 From: "iap10@freefall.cl.cam.ac.uk" Date: Sun, 13 Feb 2005 22:00:50 +0000 Subject: [PATCH] bitkeeper revision 1.1198 (420fce12wkkVt8DoRztlJcYxK80wIw) minor fixes to earlier pagetable change Signed-off-by: ian.pratt@cl.cam.ac.uk --- xen/arch/x86/domain.c | 9 ++++++--- xen/arch/x86/x86_32/domain_build.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index 65753330d9..d01c8765e3 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -299,7 +299,7 @@ static void alloc_monitor_pagetable(struct exec_domain *ed) struct pfn_info *mpfn_info; struct domain *d = ed->domain; - ASSERT(!ed->arch.monitor_table); /* we should only get called once */ + ASSERT(!pagetable_val(ed->arch.monitor_table)); /* we should only get called once */ mpfn_info = alloc_domheap_page(NULL); ASSERT( mpfn_info ); @@ -502,8 +502,11 @@ int arch_final_setup_guest( return vmx_final_setup_guest(d, c); #endif - update_pagetables(d); /* this assigns shadow_pagetable - and monitor_table */ + /* We don't call update_pagetables() as we actively want fields such as + * the linear_pg_table to be null so that we bail out early of + * shadow_fault in case the vmx guest tries illegal accesses with + * paging turned of. + */ return 0; } diff --git a/xen/arch/x86/x86_32/domain_build.c b/xen/arch/x86/x86_32/domain_build.c index b0854f15a9..46c4093139 100644 --- a/xen/arch/x86/x86_32/domain_build.c +++ b/xen/arch/x86/x86_32/domain_build.c @@ -385,7 +385,7 @@ int construct_dom0(struct domain *d, if (0) /* XXXXX DO NOT CHECK IN ENABLED !!! (but useful for testing so leave) */ { shadow_mode_enable(d, SHM_test); - update_pagetable(ed); /* XXX SMP */ + update_pagetables(ed); /* XXX SMP */ } #endif -- 2.30.2